--- title: Examples keywords: fastai sidebar: home_sidebar summary: "Some circuits, protocols and sampling" description: "Some circuits, protocols and sampling" nb_path: "08_examples.ipynb" ---
ghz.draw()
ghz_stabs.draw(scale=1.2)
eft.draw(scale=1.5)
sz_123.draw()
meas7.draw(scale=1.2)
nfs.draw(scale=1)
ghz3.draw(figsize=(6,6))
0. (If 1 is measured repeat preparation as often as necessary)0s.ghz_stab.draw(figsize=(6,6), legend=True)
ftsteane.draw(figsize=(8,6), label_offset=(0,0.15))
steane0.draw(figsize=(6,6), legend=True)
flagstab.draw(legend=True, figsize=(15,5))
from qsam.sampler.direct import DirectSampler
from qsam.sampler.subset import SubsetSampler
from qsam.noise import E1
from qsam.callbacks import *
from qsam.sim.stabilizer import StabilizerSimulator as CHP
import numpy as np
Use same error parameters for all examplatory samplings.
sample_range = np.logspace(-3,0,5)
err_probs = {'q': sample_range}
pmax = {'q': 0.1}
from qsam.sampler.base import protocol_subset_occurence, protocol_all_subsets, err_probs_tomatrix
import matplotlib.pyplot as plt
e = E1()
x = err_probs_tomatrix({'q': np.logspace(-3,0,100)}, ['q'])
grps = {grp: e.group(circuit) for grp, circuit in ghz3._circuits.items()}
wgts_combis = protocol_all_subsets(grps)
Aws = protocol_subset_occurence(grps, wgts_combis, x)
for circ_Aws in Aws.values():
plt.figure()
for name, y in circ_Aws.items():
plt.loglog(x, y, label=name)
plt.legend()
mc_sam = DirectSampler(ghz3, CHP, err_probs=err_probs, err_model=E1)
mc_sam.run(10000, callbacks=[])
ss_sam = SubsetSampler(ghz3, CHP, pmax=pmax, err_probs=err_probs, err_model=E1)
ss_sam.run(1000, callbacks=[])
ss_sam.tree.draw()
import matplotlib.pyplot as plt
p_L, std = mc_sam.stats()
p_L_low, ss_std_low, p_L_up, ss_std_up = ss_sam.stats()
plt.errorbar(sample_range, p_L, fmt='--', c="black", yerr=std, label="Direct MC")
plt.loglog(sample_range, p_L_low, label='SS low')
plt.fill_between(sample_range, p_L_low-ss_std_low, p_L_low+ss_std_low, alpha=0.2)
plt.loglog(sample_range, p_L_up, label='SS low')
plt.fill_between(sample_range, p_L_up-ss_std_up, p_L_up+ss_std_up, alpha=0.2)
protocol = ghz_stab
from qsam.sampler.base import protocol_subset_occurence, protocol_all_subsets, err_probs_tomatrix
import matplotlib.pyplot as plt
e = E1()
x = err_probs_tomatrix({'q': np.logspace(-3,0,100)}, ['q'])
grps = {grp: e.group(circuit) for grp, circuit in protocol._circuits.items()}
wgts_combis = protocol_all_subsets(grps)
Aws = protocol_subset_occurence(grps, wgts_combis, x)
for circ_Aws in Aws.values():
plt.figure()
for name, y in circ_Aws.items():
plt.loglog(x, y, label=name)
plt.legend()
mc_sam = DirectSampler(ghz_stab, CHP, err_probs=err_probs, err_model=E1)
mc_sam.run(10000, callbacks=[])
ss_sam = SubsetSampler(ghz_stab, CHP, pmax=pmax, err_probs=err_probs, err_model=E1)
ss_sam.run(1000, callbacks=[])
ss_sam.tree.draw()
import matplotlib.pyplot as plt
p_L, std = mc_sam.stats()
p_L_low, ss_std_low, p_L_up, ss_std_up = ss_sam.stats()
plt.errorbar(sample_range, p_L, fmt='--', c="black", yerr=std, label="Direct MC")
plt.loglog(sample_range, p_L_low, label='SS low')
plt.fill_between(sample_range, p_L_low-ss_std_low, p_L_low+ss_std_low, alpha=0.2)
plt.loglog(sample_range, p_L_up, label='SS low')
plt.fill_between(sample_range, p_L_up-ss_std_up, p_L_up+ss_std_up, alpha=0.2)
protocol = ftsteane
from qsam.sampler.base import protocol_subset_occurence, protocol_all_subsets, err_probs_tomatrix
import matplotlib.pyplot as plt
e = E1()
x = err_probs_tomatrix({'q': np.logspace(-3,0,100)}, ['q'])
grps = {grp: e.group(circuit) for grp, circuit in protocol._circuits.items()}
wgts_combis = protocol_all_subsets(grps)
Aws = protocol_subset_occurence(grps, wgts_combis, x)
for circ_Aws in Aws.values():
plt.figure()
for name, y in circ_Aws.items():
plt.loglog(x, y, label=name)
plt.legend()
mc_sam = DirectSampler(ftsteane, CHP, err_probs=err_probs, err_model=E1)
mc_sam.run(10000, callbacks=[])
from qsam.callbacks import *
ss_sam = SubsetSampler(ftsteane, CHP, pmax={"q": 0.01}, err_probs=err_probs, err_model=E1)
ss_sam.run(5000, callbacks=[])
ss_sam.tree.draw()
import matplotlib.pyplot as plt
p_L, std = mc_sam.stats()
p_L_low, ss_std_low, p_L_up, ss_std_up = ss_sam.stats()
plt.errorbar(sample_range, p_L, fmt='--', c="black", yerr=std, label="Direct MC")
plt.loglog(sample_range, p_L_low, label='SS low')
plt.fill_between(sample_range, p_L_low-ss_std_low, p_L_low+ss_std_low, alpha=0.2)
plt.loglog(sample_range, p_L_up, label='SS low')
plt.fill_between(sample_range, p_L_up-ss_std_up, p_L_up+ss_std_up, alpha=0.2)
plt.loglog(sample_range,ss_std_low)
plt.loglog(sample_range,ss_std_up)
protocol = steane0
from qsam.sampler.base import protocol_subset_occurence, protocol_all_subsets, err_probs_tomatrix
import matplotlib.pyplot as plt
e = E1()
x = err_probs_tomatrix({'q': np.logspace(-3,0,100)}, ['q'])
grps = {grp: e.group(circuit) for grp, circuit in protocol._circuits.items()}
wgts_combis = protocol_all_subsets(grps)
Aws = protocol_subset_occurence(grps, wgts_combis, x)
for circ_Aws in Aws.values():
plt.figure()
for name, y in circ_Aws.items():
plt.loglog(x, y, label=name)
plt.legend()
mc_sam = DirectSampler(steane0, CHP, err_probs=err_probs, err_model=E1)
mc_sam.run(20000, callbacks=[])
ss_sam = SubsetSampler(steane0, CHP, pmax=pmax, err_probs=err_probs, err_model=E1)
ss_sam.run(1000, callbacks=[])
ss_sam.tree.draw()
import matplotlib.pyplot as plt
p_L, std = mc_sam.stats()
p_L_low, ss_std_low, p_L_up, ss_std_up = ss_sam.stats()
plt.errorbar(sample_range, p_L, fmt='--', c="black", yerr=std, label="Direct MC")
plt.loglog(sample_range, p_L_low, label='SS low')
plt.fill_between(sample_range, p_L_low-ss_std_low, p_L_low+ss_std_low, alpha=0.2)
plt.loglog(sample_range, p_L_up, label='SS low')
plt.fill_between(sample_range, p_L_up-ss_std_up, p_L_up+ss_std_up, alpha=0.2)
protocol = flagstab
from qsam.sampler.base import protocol_subset_occurence, protocol_all_subsets, err_probs_tomatrix
import matplotlib.pyplot as plt
e = E1()
x = err_probs_tomatrix({'q': np.logspace(-3,0,100)}, ['q'])
grps = {grp: e.group(circuit) for grp, circuit in protocol._circuits.items()}
wgts_combis = protocol_all_subsets(grps)
Aws = protocol_subset_occurence(grps, wgts_combis, x)
for circ_Aws in Aws.values():
plt.figure()
for name, y in circ_Aws.items():
plt.loglog(x, y, label=name)
plt.legend()
mc_sam = DirectSampler(flagstab, CHP, err_probs=err_probs, err_model=E1)
mc_sam.run(10000, callbacks=[])
ss_sam = SubsetSampler(flagstab, CHP, pmax={"q": 0.01}, err_probs=err_probs, err_model=E1)
ss_sam.run(5000, callbacks=[])
ss_sam.tree.draw()
import matplotlib.pyplot as plt
p_L, std = mc_sam.stats()
p_L_low, ss_std_low, p_L_up, ss_std_up = ss_sam.stats()
plt.errorbar(sample_range, p_L, fmt='--', c="black", yerr=std, label="Direct MC")
plt.plot(sample_range, p_L_low, label='SS low')
plt.fill_between(sample_range, p_L_low-ss_std_low, p_L_low+ss_std_low, alpha=0.2)
plt.plot(sample_range, p_L_up, label='SS low')
plt.fill_between(sample_range, p_L_up-ss_std_up, p_L_up+ss_std_up, alpha=0.2)
plt.xscale('log')
plt.yscale('log')
from qsam.noise import E3, E3_1, E2
from qsam.callbacks import *
pmax = {
"q1": 0.1,
"q2": 0.1,
"meas": 0.1,
"idle": 0.01,
"init": 0.01
}
err_probs = {
'q1': 0,
'q2': sample_range,
'meas': sample_range * 0.1,
'idle': sample_range * 0.01,
'init':sample_range * 0.001
}
mc_sam = DirectSampler(ghz3, CHP, err_probs=err_probs, err_model=E3)
mc_sam.run(10000, callbacks=[PlotStats()])
ss_sam = SubsetSampler(ghz3, CHP, pmax=pmax, err_probs=err_probs, err_model=E3)
ss_sam.run(2000, callbacks=[PlotStats()])
ss_sam.tree.draw()
import matplotlib.pyplot as plt
p_L, std = mc_sam.stats()
p_L_low, ss_std_low, p_L_up, ss_std_up = ss_sam.stats()
plt.errorbar(sample_range, p_L, fmt='--', c="black", yerr=std, label="Direct MC")
plt.plot(sample_range, p_L_low, label='SS low')
plt.fill_between(sample_range, p_L_low-ss_std_low, p_L_low+ss_std_low, alpha=0.2)
plt.plot(sample_range, p_L_up, label='SS low')
plt.fill_between(sample_range, p_L_up-ss_std_up, p_L_up+ss_std_up, alpha=0.2)
plt.xscale('log')
plt.yscale('log')